package com.example.demo.entity.base;

import java.util.Map;

import com.alibaba.fastjson.JSONObject;

/**
 * 分页请求对象
 * <br/>
 * 前端需要分页查询时，参数为此对象
 * <br/>
 * 示例：
 * <pre>
 * 	{
		"curPage":1,
		"pageSize":2,
		"params":{
			"goodsCode":"1001",
			"goodsName":"农夫山泉有点甜"
		}
	}
 * </pre>
 * @author Administrator
 * @param <P>
 */
public class PageRequestBean<P> {

	/**
	 * 当前页码，比如第1页
	 */
	private int pageNum = 1;
	/**
	 * 每页大小，比如每页设定显示15条记录
	 */
	private int pageSize = 10;
	/**
	 * 前端请求的参数对象
	 */
	private P params;
	/**
	 * 排序对象<br/>，支持多个字段
	 * true=asc，false=desc
	 */
	private Map<String, Boolean> sortedMap;
	
	/**
	 * 属性的get/set方法
	 * */
	public int getPageNum() {
		return pageNum;
	}
	public void setPageNum(int pageNum) {
		if(pageNum<ServiceConstants.INTEGER_1){
			pageNum=ServiceConstants.INTEGER_1;
		}
		this.pageNum = pageNum;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		if(pageSize<ServiceConstants.INTEGER_1){
			pageSize=ServiceConstants.INTEGER_15;
		}
		this.pageSize = pageSize;
	}
	public P getParams() {
		return params;
	}
	public void setParams(P params) {
		this.params = params;
	}
	public Map<String, Boolean> getSortedMap() {
		return sortedMap;
	}
	public void setSortedMap(Map<String, Boolean> sortedMap) {
		this.sortedMap = sortedMap;
	}
	
	/**
	 * toString()方法
	 */
	@Override
	public String toString() {
		return JSONObject.toJSONString(this);
	}
}